﻿/*
 * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU  Lesser General Public License as published by
 * the Free Software Foundation; either version 2.1, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see <http://www.gnu.org/licenses/&gt;.
 *
 */
#pragma execution_character_set("utf-8")

#include <QApplication>
#include <QTextCodec>
#include <QDesktopWidget>
#include <QLibraryInfo>
#include <QTranslator>
#include "lunarcalendarwidget.h"
#include <kabase/kylin_system/window_management.hpp>


const int CALENDAR_WIDTH = 452;
const int CALENDAR_HEIGHT = 550;
const int CALENDAR_LUNAR_HEIGHT = 62;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.setFont(QFont("Microsoft Yahei", 9));
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif

#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
    QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
#endif

#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
    QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
#else
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForLocale(codec);
#endif

    QString appTransPath = "/usr/share/ukui/translations/ukui-tablet-desktop/";
    QString qtTransPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
    QString locale = QLocale::system().name();

    QTranslator trans_global , trans_qt;

    if (!trans_global.load(QLocale(), "calendar", "_", appTransPath)) {
        qWarning() << "Load global translations file" <<QLocale() << "failed!";
    } else {
        a.installTranslator(&trans_global);
    }

    if (!trans_qt.load(QLocale(), "qt", "_", qtTransPath)) {
        qWarning() << "Load qt translations file" <<QLocale() << "failed!";
    } else {
        a.installTranslator(&trans_qt);
    }

    LunarCalendarWidget w;
    w.setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
    QDesktopWidget *screenSize = QApplication::desktop();
    int widgetWidth = w.geometry().width();
    int widgetHeight = w.geometry().height();
    int posY = screenSize->height()/2 - widgetHeight/2;
    int posX = screenSize->width()/2 - widgetWidth/2;
    w.setGeometry(posX, posY, widgetWidth, widgetHeight);

    w.setWindowTitle("自定义农历控件");
    w.showCalendar();

    return a.exec();
}
